יפדב תרש דצ םושיי לש ותוציחנל תוביסהJSP :
םהלש הפילשו הרימש רשפאיש ןפואב םינותנב לופיט
עדימ תחטבא ילוקיש : תרש דצב םינותנה תרימש
םירחא םישמתשממ עדימה תא תרדממ.
ףדב םינותנ רומשנ םאhtml ,ע םינותנב ןייעל לכוי שלוגה"י
תרזעב דוקב ןויעview source .
םישלוג לע עדימ זוכירו לוהינ
- java server page
int n1 = 8;
String s2 = “hello”;
boolean b2 = true;
(1רפסמ גוסמ הנתשמ סופיט תרדגה ,ע עבקנ הנתשמה םש"חתפמה י
(2מ הנושב-javascript ףיסוהל םיבייחint הנתשמה םש ינפל
(3תואכרימ אלל ירפסמ ךרע לש המשה עצבל ןתינ
(4 ןתינהז הנתשמ םע תויבושיח תולועפ עצבל
(1תזורחמ גוסמ הנתשמ סופיט תרדגה ,ע עבקנ הנתשמה םש"חתפמה י
(2מ הנושב-javascript ףיסוהל םיבייחString הנתשמה םש ינפל
(3תואכרימב ףקומה ךרע םע קר המשה עצבל ןתינ
(4 ןתינםירחא תוזורחמ םע הז הנתשמ לש רושרש עצבל
(1ינאילוב גוסמ הנתשמ סופיט תרדגה ,ע עבקנ הנתשמה םש"חתפמה י
(2מ הנושב-javascript ףיסוהל םיבייחboolean הנתשמה םש ינפל
(3 לש םיכרע לש קר המשה עצבל ןתינtrue/false
(4 ןתינ תינאילוב הלועפ הז הנתשמ לע עצבל(רקש,תמא)
public int calc(int a,int b)
{
int sum = a+b;
return sum;
}
public String printSum(int a,int b)
{
int sum = a+b;
return sum+””;
}
public boolean isBigger(int a,int b)
{
if (a>b) return true;
else return false;
}
public void calc(int a,int b)
{
int sum = a+b;
out.write(“The result is ”+sum);
}
רזחומה ךרעה סופיטל המאתהב היצקנופה סופיט
סופיטvoid ,רזחומ ךרע אלל רמולכ
-equalsםיטקייבוא ןיב האוושה עצבמ
ב-javascript םינתשמ ינש ןיב האוושה תקידב עצבל וניצר רשאכ
ליגר יאנת םיעצבמ ונייה תזורחמ גוסמ:
var s1 = “hello”;
var s2 = “thanks”;
if(s1 == s2) {
//do something
}
ב- jsp הדותמב םישמתשמ ונא האוושה תקידב עצבל תנמ לעequal ,אמגודל:
String s1 = “hello”;
String s2 = “thanks”;
If(s1.equals(s2) == true){ //true םא הווש, ריזחמ
//do something
}
ףד לש אמגוד-JSP תוליעפ
תויחנהה קלח
// תפש תרדגהתונכיתה
<%@page language="java"%>
// תרשב דודיק תרוצ
<%@page contentType="text/html" pageEncoding="UTF-8"%>
ףדה ךשמה: דוקה קלחcode section -תרש דצ
<%!
String output;
// void: ךרע הריזחמ הניאש היצקנופ
public void Counter(int s){
for(int i=0;i<s;i++){
output+= i +"<br>";
}
}
%>
<%
int sum=5;
Counter(sum); // היצקנופל האירק
%>
תויצקנופ וא םינתשמ תרדגה:
ב עצבתמ וניא הזה קלחה-refresh
ףדה לש.
ץוחמ תולועפ עצבל רשפא יא
היצקנופל.
דוק תולועפ, תויצקנופל תואירקו םיבושיח
ףדה ךשמה: דצclient
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1><%=output%></h1>
</body>
</html>
רושיק תרשפאמה תדחוימ תיגת
ל םינותנ-html
ב רדגומה הנתשמ תגצה-jsp תועצמאבhtml
<%
String showTbl="<table border='2'> ";
for(int i=0;i<5;i++){
showTbl+="<tr><td>row"+i+"</td></tr>";
}
showTbl+="</table>";
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-
8">
<title>JSP Page</title>
</head>
<body>
<h1>My Table</h1>
<%=showTbl%>
</body>
</html>
התגצה ינפל תזורחמה תנכה
ב=html
הנתשמה תגצה
<body>
<h1> My table </h1>
<table border="2">
<%
for(int i=0;i<5;i++)
{
%>
<tr style="background-color: lightgrey">
<td>
row<%=i%>
</td>
</tr>
<%
}
%>
</table>
</body>
ה דוק-jsp רשקה תא רומשל לגוסמ
דוקה יקלח ןיב, םהיניב דירפמ רשאכ םג
דוקclient (html ,javascript )
ה דוק-jsp ףדה תא ןיכמשhtml תרשב עצבתמ
ףד ןכמ רחאלוhtml ל חלשינ ןכומ-client
תוליעפ:
ע תינכות הנב" פ
הז ףדב דוקה,םע
עבצ לש תפסות
ךרואל ףלחתמה עקר
םיאתה
טקייבואהrequest
חוקלה תשקבל רושקה עדימ גצייל ותרטמו תרש דצב יונבה טקייבוא.
השקבה ינותנל תשגל ןתינ ןכרדש תולועפ רפסמ שי הז טקייבואל
1 .request.getRemoteAddr() :ה תבותכ םע תזורחמ הריזחמה-
ip השקבה העצוב ונממש בשחמה לש.
2 .requset.getRemotePort() :רפסמ םע תזורחמ הריזחמה
ה-port השקבה העצוב וכרדש ןפדפדה לש.
3 .request.getParameter() :תרשל חלשנש עדימ תצלחמ
ספוטמ(form ) תטיש תועצמאבGet תטיש ואPost
תדותמ- getParameterתוליעפ
טקייבוא לשrequest
--first.html--
<form name=“form1 action=“second.jsp onsubmit=“return validation()”
method=“post” >
Password:<input type=“password name=userPass/> <br>
<input type=“submit” value=“send”/>
</form>
--second.jsp
<%
if(request.getParameter(userPass)!=null) {
String pass = request.getParameter(userPass);
}
%>
םע עדימ חלשנ םא הקידב
name הז ,אל םא , ריזחמnull
תטיש לש תונורתיpost
.1 ריבעהל רשפאש עדימה תומכ, תטישמ רתוי הברget
.2 ןתינ וז הטישבש ןווכמ ןוויכמ שיגר עדימ ריבעהל רשפא
םישלוגהמ עדימה תא ריתסהל , תטישל דוגינבget עדימהש
ב עיפומ-URL
תטישב שמתשנ יתמ ןכ םאget ?
עצבמ שלוגה
תשקב
http get
ול ריזחמ תרשה
ףדhtml םע
השקבה יפל תויגת
LoopBack
ינותנ תחילש
ה-form ב-
submit
תא דבעמ תרשה
חלושו םינותנה
יגתhtml םימיאת
בצמstateless
תרשה עגמ קתנמ
שלוגה םע
תרש
חוקל
תטישget :
--index.html - -
<a herf=“result.jsp? x=4&y=7 ” > 4+7 </a>
--result.jsp - -
<%
String stX = request.getParameter)“x”(;
String stY = request.getParameter)“y”(;
int getX = Integer.parseInt(stX);
int getY = Integer.parseInt(stY);
int sum = getX+getY;
%>
html:
<body> The result is <%=sum%> </body>
תליחתל גתQueryString
תפסוהל גת
parameter
QueryString
םוכיסל :
םיאור ונא ךכ םאתונבל רשפאש
QueryString ע םג" י
קניל ע קר אלו" יsubmit
תטישב ךרוצ שי ןכלוget
תטישPOSTBACK:
תרשב ףד ותואל תשחרתמש השקב איה,
ב םינותנ תרבעהל הטיש ונדמל-form תרזעב תרשב רחא ףדל
Submit .
ףד ותואב תונשנו תורזוחה תושקבב לפטל םיניינועמ היהנ םיתיעל
ומצע , תטישב שמתשנ זאוPOSTBACK .
jsp:<%
String msg=“Choose an action”;
if(request.getParameter(“btnAdd”)!=null){
msg = “Apparently you chose the Add operation …”;
}
if(request.getParameter(“btnRemove”)!=null){
msg = “Are you sure you want to delete?”;
}
if(request.getParameter(“btnUpdate”)!=null){
msg = “Are you sure you want to update?”;
}
%>
html : <body>
<form name=“form1” method=“post” action=“”>
<%=msg%>
<input type=“submit” name=“btnAdd” value=“Add” />
<input type=“submit” name=“btnRemove” value=“Remove” />
<input type=“submit” name=“btnUpdate” value=“Update” />
</form>
</body>
רותפכ הזיא הקידב
ץחלנ
תוליעפ:
ע תינכות הנב" פ
הז ףדב דוקה
ה לש ךרעה-action קיר , רמולכ
תשקב תעצבתמhttp post ףדל
ומצע
טקייבוא לש תפסונ הדותמrequest
request.getMethod() :ה ינותנ וחלשנ הטיש הזיאב קדוב-submit
אמגודל :
if( request.getMethod() .equals(“GET”) == true){
//GET תטישב וחלשנ םינותנה
}
טקייבואresponse
טקייבואמ הנושבrequest רושקה עדימה תא גצייל ותרטמש
חוקלה תשקבב ,
ה טקייבוא-response עצבל ןפדפדל תומרוגש תוארוה םשיימ
איהשלכ הלועפ.
1 .response.sendRedirect(“target.jsp”) : שקבל ןפדפדל םרוג
םיוסמ ףדל וריבעהל תרשהמ.
2 .response.setHeader(“Refresh”,10;url=‘target.jsp’”) :
עצבל ןפדפדל םרוגhttp GET ל-target.jsp רחאל10 תוינש.
ןכדעל תרשהמ שקבל ןמז המכ ךות\ףד תונשל
בצמ רסוח תונכת(Stateless Programming)
רוכזכ ,חוקלה תשקבב תרשה לש לופיט םויס םע ,תרשהו חוקלה זא
חוקלה ינותנ תא רמוש וניא ללכ תרשהש ךכ רשק םיקתנמ.
סמוע םומינימב תושקב לש בר רפסמב לופיט תרשפאמ וז הטיש
(שלוג יטרפ לכ תרימש בקע םרגנ היהש סמועה תא ראתל םילוכי ונייה
תרשב.)
תונכתstateless םיטקייבוא רפסמ הליכמ:
1 .session : ותואל תונוש תושקב ןיב חוקל ינותנ רומשל תרשפאמה הדותמ
ה דוע לכ םירחא םיפדל רבעמב וא ףד-browser לעפומ.
2 .cookie :חוקל ןורכיזב עדימ רומשל תנמ לע-ןפדפד.
3 .application : לכל שיגנ היהי הז עדימש ךכ תרשה ןורכיזב עדימ
תושקבה יגוס לכלו תוחוקלה.
טקייבואsession אמגוד- תוליעפ
--index.jsp
JSP:
<%
if ( request.getParameter(“User”)!= null){
String userName = request.getParameter(“User”);
session. setMaxInactiveInterval(60*60);
session.setAttribute(“user_name”, userName) ;
response. sendRedirect(“second.jsp”);
}
%>
HTML:
<body> My session is <%=session.getId()%><br>
<form name=“form1action=“index.jsp method=“post” >
User Name:<input type=“text” name=“User” /> <br>
<input type=“submit” value=“send”/>
</form>
</body>
ךותל ךרע תמשהkey ב-session
ה-default אוה
הש-session לטבתמ
לש ןמז קרפ רבע םא
30 תוקד , השקבהמ
הנורחאה( אלל
תוליעפ) ,
רידגהל תורשפא שי
ןמזה תא(תוינשב),
רדגומ םא1- רמולכ
תא םירגוסש דע
ןפדפדה
לש ההזמה רפסמה
ה-session
לכב לחתואמה
תניעטbrowser
לש םושייל אמגוד ךשמהsession - תוליעפ
--second.jsp
JSP:
<%
String userName="";
if(session.isNew()==true){
session.invalidate();
response.sendRedirect("index.jsp");
}else{
userName = (String)session.getAttribute("user_name");
}
%>
HTML:
<body> My session is <%=session.getId()%><br>
<h1>Hello <%=userName%></h1>
</body>
security : רצונ םא קדובsession שדח,
ה ךרד רבע אל שלוגהש רמוא הז ןכ םא-log in
םשל ותוא םירבעמ ןכלו.
ןסחואמש ךרעה תא םיפלוש
ב-session ע"ה פ-key
טקייבואapplication
מ הנושב-session הש-id םיידוחיי וב ןסחואמש עדימהו ולש
חוקל ןפדפדל ,ה עפומ-application דיחי עדימל השיג רשפאמו
לכמ תושקבה,םינוש םינפדפדמו םינוש םיפדמ .
אמגודל שומיש:
1)ךרעו חתפמ ןונגסב עדימ תרימש:
application.setAttribute(“Developer”,”Dorit”);
2 )עדימל השיג:
String dev = (String)application.getAttribute(“Developer”);
session session session session session
application
טקייבואCookie
מ הנושב-session מו-application םירמשנשתרשב ,ה-Cookie
רמשנןפדפדה ןורכיזב חוקלה בשחמב ןכמ רחאלו.
תונוש תושקבב דיחי עדימל תשגל רשפאמ(םינפדפדבו
םינוש),ה תא רידגהש רתא ותואל-Cookie םיוסמה.
לדוגCookie ל עיגהל לוכי-k4 לצא רומשל לוכי רתא לכו
דע חוקלה20 Cookies .
Cookie myCookie = new Cookie(" keyName ", valueName”);
myCookie.setMaxAge(60 * 60 * 24 * 365);
myCookie.setPath(“/”);
response.addCookie(myCookie);
Cookie[] arrCookie = request.getCookies();
if(arrCookie!=null){
for (int i = 0; i < arrCookie.length; i++) {
if (arrCookie[i].getName().equals(“keyName")) {
String varName = arrCookie[i].getValue();
}
}
}
הש רידגמ-Cookie רכויש לכב
רתאה
רמושCookie ב-browser
ה לכ תא ףלוש-Cookies םימייקש
תרדגה Cookieותפילש
תקלחמRandom
םירפסמ לש ילאמודנר בושיח תרשפאמה הקלחמ.
וז הקלחמב שמתשהל תנמ לע , תיירפס תא אבייל ךרוצ שיutil אבה ןפואב:
<%@page import ="java.util.*"%>
אמגודל שומיש:
Random rnd = new Random();
int r1 = rnd.nextInt();
int r1 = 1+rnd.nextInt( 40 );
ה סופיט חווטב םיכרע ריזחמ-int
חווטב םיכרע ריזחמ1-40